﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NGI_Entidades
{
    public class Sesion
    {
        Usuario _usuario = new Usuario();
        DateTime _vencimiento;

        public Usuario UsuarioLogueado
        {
            get { return _usuario; }
            set { _usuario = value; }
        }

        public DateTime Vencimiento
        {
            get { return _vencimiento; }
            set { _vencimiento = value; }
        }


        public Sesion(Usuario UsuarioLogueado, DateTime Vencimiento)
        {
            this._usuario = UsuarioLogueado;
            this._vencimiento = Vencimiento;
        }

        public Sesion() { }


        public Boolean SirveParaLoguear()
        {
            return this._vencimiento > DateTime.Today && this._usuario.PuedeLoguear();
        }


        public static Sesion Vacia()
        {
            return new Sesion();
        }

        public static Sesion SeLogueo(Usuario UsuarioLogueado, DateTime Vencimiento)
        {
            return new Sesion(UsuarioLogueado, Vencimiento);
        }

        public static Sesion QuiereLoguear(Usuario UsuarioALoguear, DateTime Vencimiento)
        {
            return new Sesion(UsuarioALoguear, Vencimiento);
        }

        public static Sesion QuiereLoguearSinGuardarCredenciales(Usuario UsuarioALoguear)
        {
            return new Sesion(UsuarioALoguear, (DateTime.Today).AddDays(1));
        }

    }
}
